---
title: 从 Luckysheet 迁移到 Univer
---

我们新设计的 Univer，相比较 Luckysheet，从架构、数据结构以及 API 等方面做了很大改进设计，所以 Luckysheet 已经无法 1 比 1 迁移到 Univer。

不过基本的数据类型或者 API 都可以在 Univer 中找到，鉴于此，如果你仍然想要将 Luckysheet 的数据要迁移到 Univer，可以根据自己的需求，有针对性的做一些适配工作。

这里给大家提供一个迁移指导方案。

## 分析

### 配置

转换最核心的工作是对工作簿配置、工作表配置以及单元格信息进行适配，可以参考 Univer 的接口和 Luckysheet 的数据结构。

|       | Univer         | Luckysheet |
|-------|----------------|------------|
| 工作簿配置 | [IWorkbookData](/guides/sheets/model/workbook-data#iworkbookdata) | [整体配置 config](https://dream-num.github.io/LuckysheetDocs/zh/guide/config.html) |
| 工作表配置 | [IWorksheetData](/guides/sheets/model/worksheet-data#iworksheetdata) | [工作表配置 sheet](https://dream-num.github.io/LuckysheetDocs/zh/guide/sheet.html) |
| 单元格 | [ICellData](/guides/sheets/model/cell-data) | [单元格 cell](https://dream-num.github.io/LuckysheetDocs/zh/guide/cell.html) |

### 插件

Luckysheet 的初始化通过一个 JSON 配置来完成，而 Univer 做了拆分，将增强功能用插件来实现，所以部分功能需要分散到插件配置，比如

|       | Univer         | Luckysheet |
|-------|----------------|------------|
| 数字格式 | [numfmt](/guides/sheets/features/core/numfmt)，通过[单元格样式](/guides/sheets/model/cell-data#number-format)配置 | [单元格值格式：cell.ct](https://dream-num.github.io/LuckysheetDocs/zh/guide/cell.html#%E5%8D%95%E5%85%83%E6%A0%BC%E5%80%BC%E6%A0%BC%E5%BC%8F) |
| 浮动图片 | [floating images](/guides/sheets/features/floating-images) | [image](https://dream-num.github.io/LuckysheetDocs/zh/guide/sheet.html#image) |
| 查找 & 替换 | [find replace](/guides/sheets/features/find-replace) | - |
| 筛选 | [filter](/guides/sheets/features/filter) | [filter](https://dream-num.github.io/LuckysheetDocs/zh/guide/sheet.html#filter) |
| 排序 | [sort](/guides/sheets/features/sort) | [filter](https://dream-num.github.io/LuckysheetDocs/zh/guide/sheet.html#filter)（包含在筛选中）|
| 数据透视表 | [pivot table](/guides/sheets/features/pivot-table) | [pivotTable](https://dream-num.github.io/LuckysheetDocs/zh/guide/sheet.html#pivottable) |
| 数据验证 | [data validation](/guides/sheets/features/data-validation) | [dataverification](https://dream-num.github.io/LuckysheetDocs/zh/guide/sheet.html#dataverification) |
| 条件格式 | [conditional formatting](/guides/sheets/features/conditional-formatting)  | [luckysheet_conditionformat_save](https://dream-num.github.io/LuckysheetDocs/zh/guide/sheet.html#luckysheet-conditionformat-save) |
| 评论 / 批注 | [thread comment](/guides/sheets/features/thread-comment) | [单元格批注：cell.ps](https://dream-num.github.io/LuckysheetDocs/zh/guide/cell.html#%E5%9F%BA%E6%9C%AC%E5%8D%95%E5%85%83%E6%A0%BC) |
| 打印 | [print](/guides/sheets/features/print)  | [打印插件](https://github.com/dream-num/Luckysheet/wiki/Plugin:-Print) |
| 导入导出 | [import export](/guides/sheets/features/import-export) | [Luckyexcel 导入](https://github.com/dream-num/Luckyexcel) & [导出](https://github.com/dream-num/Luckysheet/wiki/Plugin:-Export-XLSX)，或者[社区方案](https://dream-num.github.io/LuckysheetDocs/zh/guide/FAQ.html#excel%E5%AF%BC%E5%85%A5%E5%AF%BC%E5%87%BA%E6%80%8E%E4%B9%88%E5%81%9A) |
| 协同编辑 | [collaboration](/guides/sheets/features/collaboration) | [LuckysheetServer](https://github.com/dream-num/LuckysheetServer) |

### API

对于 API 部分，Luckysheet API 统一挂载在 `window.luckysheet`，使用 Univer API 有两种方式

- 调用封装好的 [Facade API](/guides/sheets/getting-started/facade)
- 采用 Univer 的依赖注入系统，将插件的 service 能力注入到当前 Class 中，参考我们的 [插件教程](/guides/sheets/tutorials/csv-import-plugin/) 可以轻松的接入 Univer 依赖注入系统

## 总结

针对部分常用的基础数据，可以参考下下面的 Demo ，再根据项目需求做定制。部分源码在 [migrate-luckysheet](https://github.com/awesome-univer/migrate-luckysheet/tree/main/src) 仓库。

如果 Univer 现有功能不满足你的需要，还可以自行开发插件进行适配。

## Demo

<PlaygroundFrame lang="zh-CN" slug="sheets/migrate-from-luckysheet" clickToShow />

## 常见问题

### Luckyexcel 的 `transformExcelTolucky` 方法如何迁移？

Luckyexcel 中提供了 `transformExcelTolucky` 方法，可以将 Excel 文件转换为 JSON 数据，对应的 Univer 中可以使用 Facade API 的 [`importXLSXToSnapshotAsync`](/zh-CN/guides/sheets/features/import-export#import-xlsx-and-get-workbook-data) 方法来实现。

如果需要转换一个在线的 Excel 文件，Luckyexcel 中提供了 `transformExcelToLuckyByUrl` 方法，Univer 中可以直接调用 `importXLSXToSnapshotAsync` 方法来实现。
